import { defineStore } from 'pinia';
import { LOC, DEV, PRD } from '@/assets/constants/env';
import { Local } from '@/assets/utils/storage';

export const storeKey = 'env';

const initEnv = () => {
  Local.set(storeKey, PRD)
  return PRD
}

/**
 * 使用数据时需要
 * 
 * 1. 引入包
 * import { storeToRefs } from 'pinia';
 * import { useEnvStore } from '@/stores/env';
 * 
 * 2. 创建值
 * const envStore = useEnvStore();
 * 
 * 3. 将值响应化
 * const { env } = storeToRefs(envStore);
 * 
 * 4. 使用值
 * onMounted(() => {
 *   envName.value = env.value.envName;
 * })
 */
export const useEnvStore = defineStore('envStore', {
  state: () => ({
    env: Local.get(storeKey) || initEnv()
  }),
  actions: {
    async setEnv(envName: string) {
      console.log('setEnv', envName);
      if (envName === 'LOC') {
        this.env = LOC;
      }
      if (envName === 'DEV') {
        this.env = DEV;
      }
      if (envName === 'PRD') {
        this.env = PRD;
      }
      console.log(this.env)
      Local.set(storeKey, this.env)
    }
  }
});